<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <script>


        // 在函数的调用过程中
        //    基本数据类型 传递的是值
        //    引用数据类型 传递的是地址




        // var a = 1 ;
        // var b = 2 ;

        // function f(a) {    // a相当于是局部变量   var a
        //     a++ ;
        //     b++ ;   
        // }


        // f(a) ;

        // console.log(a);  // 1

        // console.log(b);  // 3




        var arr = [1,2,3] ;

        function f(brr) {     // var brr ;    brr = arr ;    共享了地址
            brr.pop() ;
        }

        f(arr) ;

        console.log(arr);   // [1,2]






        // 自己封装myPop()


        // 方法1   不会改变原数组
        // function myPop(arr) {
        //     // 存入新数组  遍历 0  length-1
        //     var arr2 = [] ;
        //     for(var i = 0 ; i < arr.length - 1 ; i++) {
        //         arr2.push(arr[i])
        //     }
        //     return arr2 
        // }


        // var res = myPop([1,2,3]) ;
        // console.log(res);


        // 方法2   直接改变了原数组
        function myPop(arr) {   // var arr ;  arr = d ;  共享了地址
            arr.length = arr.length - 1 ;
        }

        var d = [1,2,3] ;
        myPop(d) ;





        var aa = [1,23,4] ;
        var res = aa.slice(1,3) ;
        console.log(res);
        console.log(aa);





        // push()   
        // pop()
        // shift()
        // unshift()



        // includes()
        // indexOf()
        // concat()
        // slice()
        // join()
        

        // splice()


        // sort()
        // reverse()




        // 冒泡排序如何不改变原数组也能实现排序  -> 返回一个新的数组

        // 冒泡
        function bubbleSort(arr) {
            // 声明一个新的数组
            // 深复制  arr 
            // 改变新数组
            // 返回新数组
            for(var i = 0 ; i < arr.length - 1 ; i++) {
                // 相邻做比较
                for(var j = 0 ; j < arr.length - 1 - i ; j++) {
                    if(arr[j] > arr[j+1]) {
                        var temp = arr[j] ;
                        arr[j] = arr[j+1] ;
                        arr[j+1] = temp
                    }
                }
            }
        }

        var c = [5,3,1,2] ;
        bubbleSort(c) ;
        console.log(c);




        function selectSort() {

        }







    </script>
    
</body>
</html>